package com.dragons.dragonsvf.utils;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.net.URL;
import java.util.Base64;

/**
 * @author Dragons.G
 * @date 2025-03-16 11:42:08
 * @description 处理网络请求的工具类
 */
public class netUtils {

    /**
     * 将MinIO网络图片转换为Base64字符串
     * @param imageUrl 图片URL（如http://king.dragons.org.cn:9000/avatars/admin.jpg）
     * @return Base64编码的图片字符串（含MIME头）
     */
    public static String convertToBase64(String imageUrl) {
        try {
            // 1. 读取网络图片
            URL url = new URL(imageUrl);
            BufferedImage image = ImageIO.read(url);

            // 2. 获取图片格式（通过URL后缀判断）
            String format = imageUrl.substring(imageUrl.lastIndexOf(".") + 1);

            // 3. 转换为字节数组
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ImageIO.write(image, format, baos);
            byte[] imageBytes = baos.toByteArray();

            // 4. 生成带MIME头的Base64字符串
            String base64 = Base64.getEncoder().encodeToString(imageBytes);
            return "data:image/" + format + ";base64," + base64;

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}
